Data bus inversion is known to be an important aspect of bus power management and electrical reliability. Data bus inversion can aid bus power management by guarantying that no more than 50% of data bus lines carrying data bits need to change state, i.e., change state between “0” and “1” or “1” and “0”, at any time. If the data bus is, e.g., 64 bits wide, any binary number can be represented on the data bus from 0 to 264−1. When sending 64 bit message words on the data bus, state changes of certain bus lines will occur between succeeding message words. If it is encountered that more than half of the bus lines would need to have a change state from one message word to the next, the next message word can be inverted. Thus, every logical “1” becomes a logical “0”, and every logical “0” becomes a logical “1”.
An error correction code (ECC) can be used in order to recover from single or multiple errors due to transmission over noisy channels.